package com.example.hutool;

import cn.hutool.core.math.MathUtil;

import java.util.Arrays;
import java.util.List;

/**
 * 排列组合工具类
 *
 * @author 江黎
 * @since 2022-11-08
 */
public class 排列组合工具类 {

    public static void main(String[] args) {
        // 排列
        long arrangementCount = MathUtil.arrangementCount(6, 2);
        System.out.println(arrangementCount);
        // 全排列
        arrangementCount = MathUtil.arrangementCount(6);
        System.out.println(arrangementCount);

        // 排列选择（从列表中选择n个排列）
        String[] datas = {"A", "B", "C"};
        List<String[]> strings = MathUtil.arrangementSelect(datas, 2);
        for (String[] string : strings) {
            System.out.println(Arrays.toString(string));
        }

        // 全排列选择（列表全部参与排列）
        List<String[]> list = MathUtil.arrangementSelect(datas);
        for (String[] string : list) {
            System.out.println(Arrays.toString(string));
        }

        // 组合选择（从列表中选择n个组合）
        List<String[]> strings1 = MathUtil.combinationSelect(datas, 2);
        for (String[] string : strings1) {
            System.out.println(Arrays.toString(string));
        }

    }
}
